home *** CD-ROM | disk | FTP | other *** search
/ CD ROM Paradise Collection 4 / CD ROM Paradise Collection 4 1995 Nov.iso / os2 / adaptor.zip / ADAPT.ZIP / adaptor / examples / purdue / prob11.fcm < prev    next >
Text File  |  1993-06-26  |  2KB  |  79 lines

  1.       PROGRAM PROB11
  2. C
  3. C     PROBLEM 11
  4. C
  5. C  REFERENCE:  PROBLEMS TO TEST PARALLEL AND VECTOR LANGUAGES
  6. C              CSD-TR 516, COMPUTER SCIENCE, PURDUE UNIVERSITY
  7. C              JOHN R. RICE, MAY 1, 1985
  8. C
  9. C              REVISED BY JOHN R. RICE AND J. JING, OCT. 1, 1990
  10. C
  11. C
  12. C      *************************************************
  13. C      *      Adapted for FORTRAN D benchmarking       *
  14. C      *    by  T. HAUPT  (haupt@sccs.npac.syr.edu)    *
  15. C      *                                               *
  16. C      *    Northeast Parallel Architectures Center    *
  17. C      *   at Syracuse University, Syracuse, NY, USA   *
  18. C      *************************************************
  19. C
  20. C
  21. C       VERSION SIMD/CM2-1.00
  22. C       ==================================================
  23. C
  24.       INCLUDE '/usr/include/cm/paris-configuration-fort.h'
  25.       INTEGER KASES,NK,MK,NFMOM
  26.       PARAMETER (KASES=4)
  27.       PARAMETER (NFMOM=4)
  28.       INTEGER N(KASES)
  29. cmf$  layout N(:serial)
  30.       DATA N / 16384,32768,65536,262144/
  31.       REAL TFMOM(NFMOM)
  32. cmf$  layout TFMOM(:serial)
  33.  
  34.       DO 50 K = 1, KASES
  35.  
  36.       CALL CM_TIMER_CLEAR(0)
  37.       CALL CM_TIMER_START(0)
  38.       DO MANY=1,100
  39.       NK=N(K)
  40.       CALL DOIT(NK,TFMOM)
  41.       ENDDO
  42.       CALL CM_TIMER_STOP(0)
  43.  
  44.       PRINT *,'PROBLEM 11 WITH N =',NK
  45.       DO I=1,NFMOM
  46.       PRINT *,'MOMENT ',I,' = ',TFMOM(I)
  47.       ENDDO
  48.  
  49.  
  50.       CALL CM_TIMER_PRINT(0)
  51.  
  52.    50 CONTINUE
  53.       STOP
  54.       END
  55.  
  56.       SUBROUTINE DOIT(NK,TFMOM)
  57.       INTEGER NK,NFMOM
  58.       PARAMETER (NFMOM = 4)
  59.       REAL TFMOM(NFMOM)
  60. cmf$  layout TFMOM (:serial)
  61.       REAL PI
  62.       DATA PI / 3.1415926 /
  63.       REAL, ARRAY(NK)    :: DATES,COSWT
  64.  
  65.       DATES=-[1:NK]*10.0 + 1080.0*SIN(1+[1:NK]*0.0623)
  66.       DATES = AMAX1(0.0,AMIN1(1000.,DATES))
  67.       DATES = ALOG(DATES+1.0)
  68.  
  69.       TFMOM(1) = SUM(DATES)/NK
  70.  
  71.       DO K = 2, NFMOM
  72.       COSWT = COS(PI*[1:NK]*(K-1)/(NK+1)) * DATES
  73.       TFMOM(K) = SUM(COSWT)/NK
  74.       ENDDO
  75.  
  76.  
  77. c     RETURN
  78.       END
  79.